home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mac Power 1997 December
/
MACPOWER-1997-12.ISO.7z
/
MACPOWER-1997-12.ISO
/
AMUG
/
PROGRAMMING
/
Raven 1.2 Examples.sit
/
Raven 1.2 Examples
/
Quill
/
Source
/
CustomClasses.h
< prev
next >
Wrap
Text File
|
1997-04-27
|
2KB
|
89 lines
/*
* File: CustomClasses.h
* Summary: A class containing information about custom pane classes.
* Written by: Jesse Jones
*
* Copyright ゥ 1996-1997 Jesse Jones.
* For conditions of distribution and use, see copyright notice in ZTypes.h
*
* Change History (most recent first):
*
* <2> 4/26/97 JDJ Added GetCreator.
* <1> 10/14/96 JDJ Created
*/
#pragma once
#include <Functional.h>
#include <String>
#include <Utility.h>
#include <ZBroadcaster.h>
#include <ZReanimator.h>
#include <ZTypes.h>
//-----------------------------------
// Forward References
//
template<class KEY, class VALUE, class COMPARE, class ALLOCATOR> class map;
// ===================================================================================
// class CCustomClasses
// ===================================================================================
class CCustomClasses : public MBroadcaster<CCustomClasses*> {
//-----------------------------------
// Initialization/Destruction
//
public:
~CCustomClasses();
CCustomClasses();
enum {kType = 'CusC'};
//-----------------------------------
// Types
//
public:
typedef map<string, string, less<string>, allocator<string> > ClassTable;
typedef pair<const string, string> ClassEntry;
//-----------------------------------
// API
//
public:
// ----- Getters -----
long GetNumClasses() const;
bool HasClass(const string& derivedClass) const;
string GetBaseClass(const string& derivedClass) const;
const ClassTable* GetTable() const {return mTable;}
// ----- Setters -----
void AddClass(const string& derivedClass, const string& baseClass);
void RemoveClass(const string& derivedClass);
// ----- I/O -----
void ReadResources();
void WriteResources(ResID id);
//-----------------------------------
// Internal API
//
protected:
CreatorProcPtr GetCreator(const string& className);
//-----------------------------------
// Member data
//
protected:
ClassTable* mTable;
};